#!/usr/bin/env python3
"""
运行主系统但只到第二阶段完成，然后立即保存并退出
"""

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from src.ford_scraper import FordScraper
import json

def run_stage2_only():
    """只运行前两个阶段，获取Key Features数据"""
    print("🎯 运行前两个阶段获取Key Features数据...")
    
    # 加载配置
    with open('fetchNgc2.json', 'r', encoding='utf-8') as f:
        config = json.load(f)
    
    # 创建爬虫实例
    scraper = FordScraper(config)
    
    try:
        print("🚀 开始数据抓取流程...")
        
        # 第一阶段：基础页面加载和Cookie处理
        print("\n=== 第一阶段：页面初始化 ===")
        url = scraper.config['sub_model']['url']
        print(f"🌐 正在访问: {url}")
        scraper.driver.get(url)
        
        # 等待页面加载
        scraper.base_driver.wait_for_page_load()
        
        # 处理cookie同意弹窗
        scraper.cookie_handler.handle_cookie_consent()
        
        # 第二阶段：基础车型数据抓取
        print("\n=== 第二阶段：基础车型数据抓取 ===")
        car_series = scraper.model_scraper.scrape_model_data(scraper.config)
        
        # 立即保存数据
        print("\n=== 保存数据 ===")
        scraper.save_data(car_series)
        
        print("🎉 前两个阶段完成，数据已保存！")
        
        # 打印统计信息
        print(f"\n📊 统计信息:")
        print(f"  车型总数: {car_series.get_car_objects_count()}")
        for i, car_obj in enumerate(car_series.car_object_list):
            features_count = len(car_obj.key_features)
            print(f"  {i+1}. {car_obj.model_name} - {car_obj.price} ({features_count} features)")
            if features_count > 0:
                print(f"     Features: {', '.join(car_obj.key_features[:3])}{'...' if features_count > 3 else ''}")
        
    except Exception as e:
        print(f"❌ 执行过程中出现异常: {e}")
        raise
    finally:
        # 清理资源
        scraper.cleanup()

if __name__ == "__main__":
    run_stage2_only()
